import Vue from 'vue'
import store from '../../../store';
Vue.directive('num', {
    inserted(el, binding) {
        let max = binding.value
        let input = $(el).children('input')
        input.on('keyup',function(){
            let val = $(this).val()
            let num = val.replace(/\D/g, '')
            if((num + '').length>=max){
                num = (num + '').substring(0,max)
            }
            if(num != val){
                $(this).val(num)
                // 触发vue val的回传事件，要不然值不会更新到视图上去，也可以说不会触发双向数据绑定
                $(this)[0].dispatchEvent(new Event("input"));
            }
        })
        input.on('keydown', function (e) {
            let val = $(this).val()
            const reg = /^[0-9]\d*$/;
            if (e.key === 'Backspace') {
                return true;
            }
            if (!reg.test(e.key)) {
                e.returnValue = false;
                return false;
            }
            if(val.length>=max){
                e.returnValue = false;
                return false;
            }
            return true;
        })
    },
    update(el, binding) {

    }
})
Vue.directive('str', {
    inserted(el, binding) {
        let max = binding.value
        let input = $(el).children('input')
        input.on('keyup',function(){
            let val = $(this).val()
            let re=/[^5a-zA-Z0-9]/g
            let num = val.replace(re, '')
            if((num + '').length>=max){
                num = (num + '').substring(0,max)
            }
            if(num != val){
                $(this).val(num)
                // 触发vue val的回传事件，要不然值不会更新到视图上去，也可以说不会触发双向数据绑定
                $(this)[0].dispatchEvent(new Event("input"));
            }
        })
        input.on('keydown', function (e) {
            let val = $(this).val()
            const reg = /^[a-zA-Z0-9]\d*$/;
            if (e.key === 'Backspace') {
                return true;
            }
            if (!reg.test(e.key)) {
                e.returnValue = false;
                return false;
            }
            if(val.length>=max){
                e.returnValue = false;
                return false;
            }
            return true;
        })
    },
    update(el, binding) {

    }
})
/**
 * @description 判断当前按钮有没有权限操作
 * @param not
 * @return
 * @author 徐敬月 2022-06-06 14:41:43
 **/
 Vue.directive('power', {
	inserted(el, binding) {
		//获取缓存的按钮数组 判断当前的dmo 节点里面的power字段值 是不是包含在 接口缓存的数组中
		if (
			binding.value &&
			store.state.btnPower &&
			store.state.btnPower.indexOf(binding.value) === -1
		) {
			el.style.display = 'none';
		}
	},
});
/**
 * @description 自定义指令，当form表单的label超过6位，进行换行显示并改变 line-height
 * @param not
 * @return not
 * @author zhangqaing 2022-02-10 15:15:30
 **/
 Vue.directive('label', {
	inserted(el, binding) {
		let value = binding.value.length;
		// 判断当label长度超过6个时换行显示并动态改变 line-height
		if (value > 6) {
			$(el).find('.el-form-item__label').css('line-height', '0.17rem');
		}
	},
});
/**
 * @description 封装自定义指令，判断form表单中的 查询按钮是否要独占一行
 * @param not
 * @return
 * @author zhangqaing 2022-02-11 09:43:03
 **/
 Vue.directive('buttonPosition', {
	inserted(el, binding) {
		// 获取当前屏幕分辨率
		let screen = window.screen.width;
		// 获取父级 form 盒子的宽度
		let parWidth = $(el).parent().width() + 'px';
		// 根据当前 el-form-item 的个数判断 查询按钮所在的 item 是否要独占一行
		let len = $(el).parent().children('.el-form-item').length;
		// 当屏幕分辨率为 1366 - 1920
		if (screen <= 1920) {
			// 确定需不需要显示展开收起
			if (len > 8) {
				$(el).find('.sq-zk').css('display', 'inline-block');
				$(el)
					.parent()
					.children('.el-form-item')
					.each((index, item) => {
						if (index >= 7 && index < len - 1) {
							$(item).addClass('mryc-form');
						}
					});
			}
		}
		// 当屏幕分辨率为 1921 - 2560
		if (screen >= 1921 && screen <= 2560) {
			// 确定需不需要显示展开收起
			if (len > 10) {
				$(el).find('.sq-zk').css('display', 'inline-block');
				$(el)
					.parent()
					.children('.el-form-item')
					.each((index, item) => {
						if (index >= 9 && index < len - 1) {
							$(item).addClass('mryc-form');
						}
					});
			}
		}
		// 当屏幕分辨率为 2561 - 2800
		if (screen >= 2561 && screen <= 2800) {
			// 确定需不需要显示展开收起
			if (len > 12) {
				$(el).find('.sq-zk').css('display', 'inline-block');
				$(el)
					.parent()
					.children('.el-form-item')
					.each((index, item) => {
						if (index >= 11 && index < len - 1) {
							$(item).addClass('mryc-form');
						}
					});
			}
		}
		// 当屏幕分辨率为 2801 - 3200
		if (screen >= 2801 && screen <= 3200) {
			// 确定需不需要显示展开收起
			if (len > 14) {
				$(el).find('.sq-zk').css('display', 'inline-block');
				$(el)
					.parent()
					.children('.el-form-item')
					.each((index, item) => {
						if (index >= 13 && index < len - 1) {
							$(item).addClass('mryc-form');
						}
					});
			}
		}
	},
});
